A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by dividing the data into small blocks called packets, which are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form.
Certain network devices within the network, such as routers and switches, forward the packets within the network. Switches, for example, typically direct packets to neighboring devices based on layer-two (L2) forwarding information within each packet. As another example, routers contain routing engines that maintain layer-three (L3) routing information describing routes through the network. Some network device may support both L2 forwarding and L3 routing functions. In either case, each route is typically associated with a path between locations on the network. From the routing information, a routing engine of the network device generates forwarding information, which is used by the network device to relay packet flows through the network and, more particularly to relay the packet flows to next hops. In reference to forwarding a packet, a “next hop” from a network device typically refers to a neighboring device along a given route or link. Upon receiving an incoming packet, the network device examines information within the packet to identify the destination for the packet. Based on the destination, the network device forwards the packet in accordance with the forwarding information.
Periodically, network devices need to be updated. For example, software installed and running on the network devices may need to be either upgraded or replaced. A network device, however, may not be able to concurrently install a software update, maintain communication sessions with peer devices, and forward incoming packets. Therefore, in some examples, a network device may transition offline and stop forwarding network traffic in order for the update to be performed. In such examples, a network-connected device, such as a server and/or other router, that is communicatively coupled to the offline network device may, at best, subsequently detect that network packets sent by the network-connected device are no longer being forwarded or otherwise processed by the offline network device. In such cases, the network-connected device may determine one or more alternative routes through the network to avoid the offline network device as the offline network device processes the software update. Subsequent to the network device going offline but prior to the network-connected device identifying an alternative network route, network packets sent by the network-connected device to the offline network device may be dropped. Once a network-connected device determines the alternative route, the network-connected device then re-sends the previously dropped network packets using the alternative route.
In large networks, each network-connected device that is coupled to the offline network device may determine one or more alternative routes to avoid the offline network device. In such examples, substantial quantities of network packets may be dropped and re-sent when a network device is taken offline for a software update. Dropping and resending packets may result in intermittent loss of network connectivity and increased packet loss and latency.